IDEA,SparkSql读取HIve中的数据

您所在的位置:网站首页 idea spark数据分析 IDEA,SparkSql读取HIve中的数据

IDEA,SparkSql读取HIve中的数据

2024-07-15 13:00| 来源: 网络整理| 查看: 265

传统Hive计算引擎为MapReduce,在Spark1.3版本之后,SparkSql正式发布,并且SparkSql与apache hive基本完全兼容,基于Spark强大的计算能力,使用Spark处理hive中的数据处理速度远远比传统的Hive快。 在idea中使用SparkSql读取HIve表中的数据步骤如下 1、首先,准备测试环境,将hadoop集群conf目录下的core-site.xml、hdfs-site.xml和Hive中conf目录下hive-site.xml拷贝在resources目录下 2、pom依赖

org.apache.spark spark-core_2.11 2.0.1 org.apache.hadoop hadoop-client 2.7.1 org.apache.spark spark-hive_2.11 2.0.1 mysql mysql-connector-java 5.1.25 org.apache.spark spark-sql_2.11 2.0.1 org.apache.hadoop hadoop-client 2.7.1 org.apache.hadoop hadoop-common 2.7.1 org.apache.hbase hbase-client 1.4.11 com.alibaba fastjson 1.2.41 org.apache.hbase hbase-server 1.4.11 org.apache.kafka kafka_2.11 2.2.0 org.apache.spark spark-streaming_2.11 2.1.0 com.101tec zkclient 0.3 com.github.sgroschupf zkclient 0.1 org.apache.spark spark-streaming-kafka-0-10_2.11 2.3.0 org.apache.flink flink-scala_2.11 1.7.2 org.apache.flink flink-streaming-scala_2.11 1.7.2 org.apache.flink flink-table_2.11 1.7.2 org.apache.spark spark-sql_2.11 2.0.1

3、代码开发

import org.apache.spark.sql.{DataFrame, SparkSession} object SparkSql_Hive { def main(args: Array[String]): Unit = { //创建SparkSession对象 val spark = SparkSession.builder() .appName(this.getClass.getSimpleName) .master("local[*]") .config("dfs.client.use.datanode.hostname", "true") .enableHiveSupport() .getOrCreate() //指定库名 val sql1 = "use mydb" spark.sql(sql1) //查看该库下的表结构 val sql2 = "show tables" spark.sql(sql2).show() //读取hivemydb库下per表 val sql3 = "select * from mydb.per" spark.sql(sql3).show() } }

4、查看打印结果 显示mydb库下的所有表 可以看到SparkSql已经读取了Hive中的数据 5、测试中遇到的问题 (1)、找不到HIve相关的类

Exception in thread "main" java.lang.IllegalArgumentException: Unable to instantiate SparkSession with Hive support because Hive classes are not found. at org.apache.spark.sql.SparkSession$Builder.enableHiveSupport(SparkSession.scala:778) at com.yangshou.SparkSql_Hive$.main(SparkSql_Hive.scala:12) at com.yangshou.SparkSql_Hive.main(SparkSql_Hive.scala)

通过查阅相关资料,最后认为是Spark版本不对,把pom文件中Spark2.1.0的版本改为2.0.1,最终解决问题



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3